package br.com.conciliador.util.hibernate.business;

import org.hibernate.EmptyInterceptor;

import br.com.conciliador.util.jsf.JSFUtil;
import br.com.conciliador.seguranca.vo.UsuarioVo;
import br.com.r2.util.Texto;

public class R2HbInterceptor extends EmptyInterceptor
{

   private static final long serialVersionUID = 6879232562523196844L;

   @Override
   public String onPrepareStatement(String sql)
   {
      String prepedStatement = super.onPrepareStatement(sql);

      JSFUtil util = new JSFUtil();
      UsuarioVo vo = util.getUsuarioVo();

      try
      {
         if (vo.getEstEmpresaVo() != null)
         {
            //Substituir fato
            prepedStatement = prepedStatement.replaceAll("FATO_","FATO_" + Texto.formatarValor(3, vo.getEstEmpresaVo().getCodigo().toString(),1,"0"));
            
            //Substituir vwdivergencia
            prepedStatement = prepedStatement.replaceAll("VWDIVERGENCIA","VWDIVERGENCIA_" + Texto.formatarValor(3, vo.getEstEmpresaVo().getCodigo().toString(),Texto.ADIREITA,"0"));
            
            //Substituir vwduplicidade
            prepedStatement = prepedStatement.replaceAll("VWDUPLICIDADE","VWDUPLICIDADE_" + Texto.formatarValor(3, vo.getEstEmpresaVo().getCodigo().toString(),Texto.ADIREITA,"0"));
            
            //Substituir vwgab
            prepedStatement = prepedStatement.replaceAll("VWGAB","VWGAB_" + Texto.formatarValor(3, vo.getEstEmpresaVo().getCodigo().toString(),Texto.ADIREITA,"0"));
            
            //Substituir vwvendas
            prepedStatement = prepedStatement.replaceAll("VWVENDAS","VWVENDAS_" + Texto.formatarValor(3, vo.getEstEmpresaVo().getCodigo().toString(),Texto.ADIREITA,"0"));
            
            //Substituir vwextrato
            prepedStatement = prepedStatement.replaceAll("VWEXTRATO","VWEXTRATO_" + Texto.formatarValor(3, vo.getEstEmpresaVo().getCodigo().toString(),Texto.ADIREITA,"0"));
         }
      }
      catch (Exception e)
      {
         // TODO: handle exception
         e.printStackTrace();
      }
      
      return prepedStatement;
   }

}
